#演示基础柱状图的开发
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
import pyecharts
# #使用Bar构建基础柱状图
# # bar=Bar()
# # #添加x轴数据
# # bar.add_xaxis(["中国","美国","日本"])
# # #添加y轴数据
# # bar.add_yaxis("GDP",[100,50,10],label_opts=LabelOpts(position="right"))
# # #绘图
# #
# # #反转x轴和y轴的数据
# # bar.reversal_axis()
# # bar.render("基础柱状图.html")
# # #设置数值标签在右侧
#
#
# bar1=Bar()
# bar1.add_xaxis(["中国","美国","日本"])
# bar1.add_yaxis("GDP",[30,30,10],label_opts=LabelOpts(position="right"))
# bar1.reversal_axis()
# bar2=Bar()
# bar2.add_xaxis(["中国","美国","日本"])
# bar2.add_yaxis("GDP",[50,50,20],label_opts=LabelOpts(position="right"))
# bar2.reversal_axis()
# bar3=Bar()
# bar3.add_xaxis(["中国","美国","日本"])
# bar3.add_yaxis("GDP",[100,50,50],label_opts=LabelOpts(position="right"))
# bar3.reversal_axis()
#
# #构建时间线对象
# timeline=Timeline({"theme":ThemeType.LIGHT})
# #在时间线内添加柱状图对象
# timeline.add(bar1,"点1")
# timeline.add(bar2,"点2")
# timeline.add(bar3,"点3")
# #绘图是用时间线对象绘图，而不是bar对象了
#
# #自动播放设置
# timeline.add_schema(
#     play_interval=1000,
#     is_timeline_show=True,
#     is_auto_play=True,
#     is_loop_play=True
# )
# #主题设置
#
# timeline.render("基础柱状图.html")
# #扩展列表的sort方法
#准备列表
# list1=[["d",20],["b",5],["c",90]]
#
#
# #排序，基于带名函数
# def key1(s):
#     return s[1]
# list1.sort(key=key1,reverse=True)
# #排序，基于lambda匿名函数
# list1.sort(key=lambda s:s[1],reverse=False)
# print(list1)
#演示动态柱状图的开发

#读取数据
f=open(r"C:\Users\GGBOY\Desktop\jieguo.csv","r",encoding="UTF-8")
data_lines=f.readlines()
#关闭文件
f.close()
#删除第一条数据
data_lines.pop(0)
#将数据转换为字典存储
data_dict={}           #定义一个字典对象
for line in data_lines:
    zhengfa=float(line.split(",")[4])
    qiya=float(line.split(",")[5])
    qiwen=float(line.split(",")[6])
    try:
        data_dict[zhengfa].append([qiya,qiwen])
    except KeyError:
        data_dict[zhengfa]=[]
        data_dict[zhengfa].append([qiya, qiwen])
# print(data_dict)
timeline=Timeline({"theme":ThemeType.LIGHT})#构建时间线对象

#排序年份
sorted_year_list=sorted(data_dict.keys())
# print(sorted_year_list)
for zhengfa in sorted_year_list:
    data_dict[zhengfa].sort(key=lambda element:element[1],reverse=True)
    #取出前八
    zhengfa_data=data_dict[zhengfa][0:8]
    x_data=[]
    y_data=[]
    for qiwen_qiya in zhengfa_data:
        x_data.append(qiwen_qiya[0])
        y_data.append(qiwen_qiya[1])
        #构建柱状图
    bar=Bar()
    x_data.reverse()
    y_data.reverse()
    bar.add_xaxis(x_data)
    bar.add_yaxis("千帕",y_data,label_opts=LabelOpts(position="right"))
    #反转x,y轴
    bar.reversal_axis()
#设置每一年的图表的标题
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"{zhengfa}数据")
        )
    timeline.add(bar,str(zhengfa))
#for循环每一年的数据，基于每一年的数据，创建每一年的bar对象
#在for中，将每一年的bar对象添加到时间线中

#设置时间线自动播放
timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_loop_play=False,
    is_auto_play=True
)

#绘图
timeline.render("蒸发气温气压python训练.html")